package com.suzka.service.impl;

import com.suzka.mapper.DrugMapper;
import com.suzka.pojo.Drug;
import com.suzka.service.DrugService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

import java.util.List;

/**
 * 药品服务实现类，提供药品相关的业务逻辑操作
 */
@Service
public class DrugServiceImpl implements DrugService {

    //依赖注入drugMapper接口
    @Autowired
    private DrugMapper drugMapper;

    /**
     * 查询所有药品信息
     * @return 包含所有药品信息的列表，若无药品则返回空列表
     */
    @Override
    public List<Drug> findAll() {
        return drugMapper.findAll();
    }

    /**
     * 根据ID查询药品信息
     * @param id 药品ID
     * @return 对应ID的药品对象，若不存在则返回null
     */
    @Override
    public Drug findById(Integer id) {
        return drugMapper.findById(id);
    }

    /**
     * 保存药品信息
     * @param drug 需要保存的药品对象
     * @return 保存成功返回true，失败返回false
     */
    @Override
    public boolean save(Drug drug) {
        return drugMapper.insert(drug) > 0;
    }

    /**
     * 更新药品信息
     * @param drug 需要更新的药品对象
     * @return 更新成功返回true，失败返回false
     */
    @Override
    public boolean update(Drug drug) {
        return drugMapper.update(drug) > 0;
    }

    /**
     * 根据ID删除药品
     * @param id 需要删除的药品ID
     * @return 删除成功返回true，失败返回false
     */
    @Override
    public boolean deleteById(Integer id) {
        return drugMapper.deleteById(id) > 0;
    }

    /**
     * 根据药品名称关键字搜索药品
     * @param keyword 搜索关键字
     * @return 包含匹配关键字的药品列表，若无匹配则返回空列表
     */
    @Override
    public List<Drug> searchByName(String keyword) {
        return drugMapper.searchByName(keyword);
    }
}
